{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Exploratory Data Analysis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd \n",
    "import numpy as np\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "#竞赛的评价指标为logloss\n",
    "from sklearn.metrics import log_loss  \n",
    "\n",
    "from matplotlib import pyplot\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "%matplotlib inline\n",
    "\n",
    "from sklearn.metrics import accuracy_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "      <th>Outcome</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "      <td>148</td>\n",
       "      <td>72</td>\n",
       "      <td>35</td>\n",
       "      <td>0</td>\n",
       "      <td>33.6</td>\n",
       "      <td>0.627</td>\n",
       "      <td>50</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>85</td>\n",
       "      <td>66</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>26.6</td>\n",
       "      <td>0.351</td>\n",
       "      <td>31</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>183</td>\n",
       "      <td>64</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>23.3</td>\n",
       "      <td>0.672</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>89</td>\n",
       "      <td>66</td>\n",
       "      <td>23</td>\n",
       "      <td>94</td>\n",
       "      <td>28.1</td>\n",
       "      <td>0.167</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>137</td>\n",
       "      <td>40</td>\n",
       "      <td>35</td>\n",
       "      <td>168</td>\n",
       "      <td>43.1</td>\n",
       "      <td>2.288</td>\n",
       "      <td>33</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin   BMI  \\\n",
       "0            6      148             72             35        0  33.6   \n",
       "1            1       85             66             29        0  26.6   \n",
       "2            8      183             64              0        0  23.3   \n",
       "3            1       89             66             23       94  28.1   \n",
       "4            0      137             40             35      168  43.1   \n",
       "\n",
       "   DiabetesPedigreeFunction  Age  Outcome  \n",
       "0                     0.627   50        1  \n",
       "1                     0.351   31        0  \n",
       "2                     0.672   32        1  \n",
       "3                     0.167   21        0  \n",
       "4                     2.288   33        1  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data=pd.read_csv(\"diabetes.csv\")\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 768 entries, 0 to 767\n",
      "Data columns (total 9 columns):\n",
      "Pregnancies                 768 non-null int64\n",
      "Glucose                     768 non-null int64\n",
      "BloodPressure               768 non-null int64\n",
      "SkinThickness               768 non-null int64\n",
      "Insulin                     768 non-null int64\n",
      "BMI                         768 non-null float64\n",
      "DiabetesPedigreeFunction    768 non-null float64\n",
      "Age                         768 non-null int64\n",
      "Outcome                     768 non-null int64\n",
      "dtypes: float64(2), int64(7)\n",
      "memory usage: 54.1 KB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "已知缺失值已经用零值编码了，8个特征及输出都没有缺失值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "      <th>Outcome</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>3.845052</td>\n",
       "      <td>120.894531</td>\n",
       "      <td>69.105469</td>\n",
       "      <td>20.536458</td>\n",
       "      <td>79.799479</td>\n",
       "      <td>31.992578</td>\n",
       "      <td>0.471876</td>\n",
       "      <td>33.240885</td>\n",
       "      <td>0.348958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>3.369578</td>\n",
       "      <td>31.972618</td>\n",
       "      <td>19.355807</td>\n",
       "      <td>15.952218</td>\n",
       "      <td>115.244002</td>\n",
       "      <td>7.884160</td>\n",
       "      <td>0.331329</td>\n",
       "      <td>11.760232</td>\n",
       "      <td>0.476951</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.078000</td>\n",
       "      <td>21.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>99.000000</td>\n",
       "      <td>62.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>27.300000</td>\n",
       "      <td>0.243750</td>\n",
       "      <td>24.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>117.000000</td>\n",
       "      <td>72.000000</td>\n",
       "      <td>23.000000</td>\n",
       "      <td>30.500000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>0.372500</td>\n",
       "      <td>29.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>6.000000</td>\n",
       "      <td>140.250000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>127.250000</td>\n",
       "      <td>36.600000</td>\n",
       "      <td>0.626250</td>\n",
       "      <td>41.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>17.000000</td>\n",
       "      <td>199.000000</td>\n",
       "      <td>122.000000</td>\n",
       "      <td>99.000000</td>\n",
       "      <td>846.000000</td>\n",
       "      <td>67.100000</td>\n",
       "      <td>2.420000</td>\n",
       "      <td>81.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Pregnancies     Glucose  BloodPressure  SkinThickness     Insulin  \\\n",
       "count   768.000000  768.000000     768.000000     768.000000  768.000000   \n",
       "mean      3.845052  120.894531      69.105469      20.536458   79.799479   \n",
       "std       3.369578   31.972618      19.355807      15.952218  115.244002   \n",
       "min       0.000000    0.000000       0.000000       0.000000    0.000000   \n",
       "25%       1.000000   99.000000      62.000000       0.000000    0.000000   \n",
       "50%       3.000000  117.000000      72.000000      23.000000   30.500000   \n",
       "75%       6.000000  140.250000      80.000000      32.000000  127.250000   \n",
       "max      17.000000  199.000000     122.000000      99.000000  846.000000   \n",
       "\n",
       "              BMI  DiabetesPedigreeFunction         Age     Outcome  \n",
       "count  768.000000                768.000000  768.000000  768.000000  \n",
       "mean    31.992578                  0.471876   33.240885    0.348958  \n",
       "std      7.884160                  0.331329   11.760232    0.476951  \n",
       "min      0.000000                  0.078000   21.000000    0.000000  \n",
       "25%     27.300000                  0.243750   24.000000    0.000000  \n",
       "50%     32.000000                  0.372500   29.000000    0.000000  \n",
       "75%     36.600000                  0.626250   41.000000    1.000000  \n",
       "max     67.100000                  2.420000   81.000000    1.000000  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "标准差都没有非常接近0的，说明特征是可取的。但是Pregnancies，Glucose，BloodPressure，SkinThickness，Insulin和BMI的最小值为0。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Pregnancies      111\n",
      "Glucose            5\n",
      "BloodPressure     35\n",
      "SkinThickness    227\n",
      "Insulin          374\n",
      "BMI               11\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "NaN_col_names = ['Pregnancies','Glucose','BloodPressure','SkinThickness','Insulin','BMI']\n",
    "print((data[NaN_col_names] == 0).sum())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Pregnancies,SkinThickness和Insulin的0值很多，可能其中的缺失值也很多"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## 查看变量分布"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Outcome"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0,0.5,'Number of occurrences')"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1133899b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.countplot(data['Outcome'])\n",
    "plt.xlabel('Diabetes')\n",
    "plt.ylabel('Number of occurrences')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "没有出现糖尿病的占多数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Pregnancies"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0,0.5,'Number of occurrences')"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1065dea58>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.countplot(data['Pregnancies'])\n",
    "plt.xlabel('Number of Pregnancies')\n",
    "plt.ylabel('Number of occurrences')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "有的怀孕次数达到10次以上，虽然现实中一般不太可能，但这些数据可能会影响Outcome"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113894e10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113ab4a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113a014e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113e4d278>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113ca4f28>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "columns=['Glucose','BloodPressure','SkinThickness','Insulin','Age']\n",
    "for feature in columns:\n",
    "    sns.distplot(data[feature],kde=False)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "BloodPressure等于0的样本应该为缺失值，活人血压不会为0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11375bcf8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113e42c88>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "columns=['DiabetesPedigreeFunction','BMI']\n",
    "for feature in columns:\n",
    "    plt.scatter(range(data.shape[0]), data[feature].values,color='pink')\n",
    "    plt.title(\"Distribution of %s\"%str(feature))\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "BMI等于0的样本应该也为缺失值"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 特征之间的关系"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1140dbb70>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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fmRWmrrl55/bF6X497OMZeunepvVgXGQMSart+phgM+Bvdbaj53O699QB0YdmP86dWDUgVEHRp8D6sDoHEhzHZhtISnfgSnXMNXbrDkwznrKO7F/O/HDw75yOB8RERERkTRNc2Ac5K22pMuKi4iIiIikcT46B0YVGBERERERSTdUgRERERER8UHWepxOIUWoAiMiIiIiIumGKjAiIiIiIr7IR+8QqQqMiIiIiIikG6rAiIiIiIj4It2FTERERERExFmqwIiIiIiI+CIfnQOjDoyIiIiIiC+K022URUREREREHKUKjIiIiIiIL/LRIWSqwIiIiIiISLqhCoyIiIiIiC/SbZRFREREREScpQqMiIiIiIgv0hwYERERERERZ6kCIyIiIiLiizQHRkRERERExFmqwIiIiIiI+CJVYERERERERJylCowki7vLPuJ0Co7auP07p1NwVI0KXZxOwXEXYy85nYKjeuap7nQKjtua46zTKTjqwKVop1Nw3PuXsjidgqOe+1NfK9Maaz1Op5AiVIEREREREZF0Q11lERERERFfpDkwIiIiIiIizlIFRkRERETEF1lVYERERERERBylCoyIiIiIiC/SHBgRERERERFnqQIjIiIiIuKLfHQOjDowIiIiIiK+SEPIREREREREnKUKjIiIiIiIL/LRIWSqwIiIiIiISLqhCoyIiIiIiC/SHBgRERERERFnqQIjIiIiIuKLVIERERERERFxliowIiIiIiK+SHchExERERERcZYqMCIiIiIivkhzYERERERERJylCoyIiIiIiC/SHBgRERERERFnqQIjaV7Nevfw2pCXcLtdTJ34E6M/m5Boe+V7gnn17Ze4s0xx+j7zBiGzFwMQWDCAT8a8h8tl8PPz47vRPzBl/HQnmpBiBgwdzrKVv5Hr9pzM+PZLp9NJMffWrcbLb7+Ay+Vi5qQ5jBs5MdH2u6tXpPfgnpQoXYzXn3uLX+YsTdi25uhi9u86AEBE6HFe7tIvVXP/t+o3qM2w9wfgdruZMG4KI4Z/lWh7hgwZGPV/HxAcXI6TJ0/x5OO9OHoklEKFC/Dr+vns2xvf5nVrN9G710CyZr2NuQsmJewfVCCAKZNn0v/Vd1K1Xf9WiToVaDrwMYzbxYbvl7B81KxE26s8Wp/qjzUkLi6OS39c5Kd+o4naF0qBisVoOawbAMbA4hHT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/gKbNmxj3s+/MHH8D3zx9Qf8timE06fO8NQTLwFw5vRZRn0+hpAlU7HWsnDBUkLmLyFLlsz8MH00fv5+uN1uli5Zxfixaf///1ZYHxwqC2Cs9c3S0r/lHcr11zwUA/S31s4xxhQBZltryxljMgGjgCrEVzZ6ezsR11ufGRgDVCS+01GA+Dkq64wxh4Aq1trLs/Pi8zhnrc16xXIw8cPQchDf8RwBjAUWe9cZ4Ftr7bvGmM+AekAcsB3o4p0j8z7QBjgInAN+staOvToHY0xRbzsCAX9gsrV28I3et7sDav6nTyQ/V5q6eVuqW7VlrNMpOK5VpR5Op+CoLeeOOJ2C41pkT/u3J05J44//9vdBPq553mCnU3DUolPp5zbNKeXE2T1/O2Y/NZ3r1y7Fv59lHTY11dusCsxVrLXX/CZqrT1E/DwUrLUXgSR/DewG6y8QXx251nGLXGd91quWNxE/l+ZqSW4tZa295mUoa+0rQJLZvVfnYK09CDS+1jFEREREJJ3QHBgRERERERFnqQIjIiIiIuKLVIERERERERFxliowIiIiIiK+yPrmXchUgRERERERkXRDFRgREREREV+kOTAiIiIiIiLOUgVGRERERMQHWR+twKgDIyIiIiLii3y0A6MhZCIiIiIikm6oAiMiIiIi4ovidBtlERERERERR6kCIyIiIiLiizQHRkRERERExFmqwIiIiIiI+CJVYERERERERJylCoyIiIiIiA+yVhUYERERERERR6kCIyIiIiLiizQHRkRERERExFmqwIiIiIiI+CJVYERERERERJylCowki4iLp5xOwVEXYy85nYKjWlXq4XQKjpu5YaTTKThqVrkBTqfguKjY//Y1wV25SjqdguM2nj/mdAqOcpv/9s9AWmRVgREREREREXGWKjAiIiIiIr5IFRgRERERERFnqQIjIiIiIuKL4pxOIGWoAiMiIiIiIumGKjAiIiIiIj5IdyETERERERFxmCowIiIiIiK+yEcrMOrAiIiIiIj4Ik3iFxERERERcZYqMCIiIiIiPkiT+EVERERERBymCoyIiIiIiC/SHBgRERERERFnqQIj/8/efYdHUXVxHP/e3SQUaVJT6L0TICBNeofQQURUFLBQxAIqVVQEKzYQwVcEFUGlSicgRZoCgYD0FpA0akCaJpt5/0gIWQOKkuyS5fd5nn3IzD0z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q2VZP/wldg3/MIBRBeYuYFmW/Sbrw0ks2f11/TRgWtLPo9MvMxERERHxdJZlLQGW/GXdqJvENvyn/WkAIyIiIiLigaw7qh6UdnQRv4iIiIiIZBiqwIiIiIiIeCBPvV2BKjAiIiIiIpJhqAIjIiIiIuKBVIERERERERFxM1VgREREREQ8kKd+SZ8qMCIiIiIikmGoAiMiIiIi4oES9D0wIiIiIiIi7qUKjIiIiIiIB9JdyERERERERNxMFRgREREREQ+kCoyIiIiIiIibqQIjIiIiIuKB9D0wIiIiIiIibqYKjIiIiIiIB/LU74HRAEZERERExAPpIn4RERERERE3UwVGRERERMQD6SJ+ERERERERN1MFRkRERETEAyV4aA1GAxhJE142u7tTcKsjf55xdwputeJCpLtTcLt9uUu5OwX38sxj5L9Ss+LD7k7BrX759St3p+B22Qs2dHcKbrU97rS7U5C7hAYwIiIiIiIeSHchExERERERcTNVYEREREREPJCnzu5VBUZERERERDIMVWBERERERDyQroERERERERFxM1VgREREREQ8UIJxdwbpQxUYERERERHJMFSBERERERHxQAkeeh8yVWBERERERCTDUAVGRERERMQDeWb9RRUYERERERHJQFSBERERERHxQPoeGBERERERETdTBUZERERExAPpLmQiIiIiIiJupgqMiIiIiIgH8sz6iwYwIiIiIiIeSRfxi4iIiIiIuJkqMCIiIiIiHkgX8YuIiIiIiLiZKjAiIiIiIh7IM+svqsDIHapZswbs3Lma3bvXMXhwv1TtPj4+fPXVRHbvXse6dQsoUqQgAEFBVfj556X8/PNSfvllGe3atXDazmazsXnzEubO/cIl/UgLdRrdx4L1M1m46TseH/BwqvZqtQKZteILtp1YR9O2jVK135MtKytC5zN07POuSDdNNGvWgO07VrFz1xpeeOHpVO0+Pj5M/3ICO3etYc3a+RQuXNCpvWBBf2JO7mbQoL7J6yZ9+jbh4VvZsmV5uuef1mo0DGL62ql8vX4aD/Z/IFV75fsqMXnpJ6wMX0b9Nvc7tT05vA9frPqMaas/Z+Brqf+WMoLb6f8Tw/owdeUUpq6cQqPgBq5KOc3VaXQf89bPZMGmb3lsQM9U7dVqVeGbFVPZcmItTds2TNV+T7asLAudx0sZ6H3g3xgxdjz1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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1141494a8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data_corr = data.corr().abs()\n",
    "\n",
    "plt.subplots(figsize=(13, 9))\n",
    "sns.heatmap(data_corr,annot=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看到Outcome和BloodPressure和SkinThickness相关性不大，但SkinThickness与Insulin有44%的相关性，也许我们可以删掉BloodPressure"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 数据分割"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(768, 9)\n"
     ]
    }
   ],
   "source": [
    "print(data.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/model_selection/_split.py:2026: FutureWarning: From version 0.21, test_size will always complement train_size unless both are specified.\n",
      "  FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "y_train=data['Outcome']\n",
    "X_train=data.drop(['Outcome'],axis=1)\n",
    "X_train, X_test, y_train, y_test = train_test_split(X_train, y_train, train_size = 0.8,random_state = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(614, 8)\n",
      "(614,)\n",
      "(154, 8)\n",
      "(154,)\n"
     ]
    }
   ],
   "source": [
    "print(X_train.shape)\n",
    "print(y_train.shape)\n",
    "print(X_test.shape)\n",
    "print(y_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 模型训练"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 数据标准化\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "ss_X = StandardScaler()\n",
    "\n",
    "# 分别对训练和测试数据的特征进行标准化处理\n",
    "X_train = ss_X.fit_transform(X_train)\n",
    "X_test = ss_X.fit_transform(X_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## default Logistic Regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "lr= LogisticRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "logloss of each fold is:  [ 0.50641233  0.45398684  0.47245305  0.58502473  0.46968588]\n",
      "cv logloss is: 0.497512565582\n"
     ]
    }
   ],
   "source": [
    "# 交叉验证用于评估模型性能和进行参数调优（模型选择）\n",
    "#分类任务中交叉验证缺省是采用StratifiedKFold\n",
    "from sklearn.model_selection import cross_val_score\n",
    "loss = cross_val_score(lr, X_train, y_train, cv=5, scoring='neg_log_loss')\n",
    "print ('logloss of each fold is: ',-loss)\n",
    "print ('cv logloss is:', -loss.mean())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 正则化的 Logistic Regression及参数调优"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "需要调整的参数有正则系数C和正则函数penalty"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise',\n",
       "       estimator=LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n",
       "          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n",
       "          verbose=0, warm_start=False),\n",
       "       fit_params=None, iid=True, n_jobs=1,\n",
       "       param_grid={'penalty': ['l1', 'l2'], 'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000]},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n",
       "       scoring='neg_log_loss', verbose=0)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "\n",
    "penaltys = ['l1','l2']\n",
    "Cs = [0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "tuned_parameters = dict(penalty = penaltys, C = Cs)\n",
    "\n",
    "lr_penalty= LogisticRegression()\n",
    "grid= GridSearchCV(lr_penalty, tuned_parameters,cv=5, scoring='neg_log_loss')\n",
    "grid.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('split0_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('split1_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('split2_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('split3_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('split4_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "{'mean_fit_time': array([ 0.00079541,  0.0011342 ,  0.00079422,  0.00130239,  0.00123448,\n",
       "         0.0011394 ,  0.00091496,  0.00092812,  0.00096617,  0.00089817,\n",
       "         0.00095205,  0.00087485,  0.0008616 ,  0.00083838]),\n",
       " 'mean_score_time': array([ 0.00081549,  0.00096946,  0.00076475,  0.00101452,  0.00104952,\n",
       "         0.00075364,  0.00065989,  0.0007369 ,  0.00074325,  0.00074377,\n",
       "         0.00061722,  0.00093703,  0.00063443,  0.00069265]),\n",
       " 'mean_test_score': array([-0.69314718, -0.64755154, -0.6800442 , -0.54221844, -0.50552924,\n",
       "        -0.49782892, -0.49746521, -0.49742985, -0.49785861, -0.49786951,\n",
       "        -0.49791521, -0.49792181, -0.49792697, -0.49792713]),\n",
       " 'mean_train_score': array([-0.69314718, -0.64643257, -0.67878695, -0.53662456, -0.49445264,\n",
       "        -0.48514869, -0.48160728, -0.48146282, -0.48140303, -0.48140154,\n",
       "        -0.4814009 , -0.48140088, -0.48140088, -0.48140088]),\n",
       " 'param_C': masked_array(data = [0.001 0.001 0.01 0.01 0.1 0.1 1 1 10 10 100 100 1000 1000],\n",
       "              mask = [False False False False False False False False False False False False\n",
       "  False False],\n",
       "        fill_value = ?),\n",
       " 'param_penalty': masked_array(data = ['l1' 'l2' 'l1' 'l2' 'l1' 'l2' 'l1' 'l2' 'l1' 'l2' 'l1' 'l2' 'l1' 'l2'],\n",
       "              mask = [False False False False False False False False False False False False\n",
       "  False False],\n",
       "        fill_value = ?),\n",
       " 'params': [{'C': 0.001, 'penalty': 'l1'},\n",
       "  {'C': 0.001, 'penalty': 'l2'},\n",
       "  {'C': 0.01, 'penalty': 'l1'},\n",
       "  {'C': 0.01, 'penalty': 'l2'},\n",
       "  {'C': 0.1, 'penalty': 'l1'},\n",
       "  {'C': 0.1, 'penalty': 'l2'},\n",
       "  {'C': 1, 'penalty': 'l1'},\n",
       "  {'C': 1, 'penalty': 'l2'},\n",
       "  {'C': 10, 'penalty': 'l1'},\n",
       "  {'C': 10, 'penalty': 'l2'},\n",
       "  {'C': 100, 'penalty': 'l1'},\n",
       "  {'C': 100, 'penalty': 'l2'},\n",
       "  {'C': 1000, 'penalty': 'l1'},\n",
       "  {'C': 1000, 'penalty': 'l2'}],\n",
       " 'rank_test_score': array([14, 12, 13, 11, 10,  3,  2,  1,  4,  5,  6,  7,  8,  9], dtype=int32),\n",
       " 'split0_test_score': array([-0.69314718, -0.64954935, -0.67752065, -0.55050809, -0.52015368,\n",
       "        -0.50840971, -0.50775605, -0.50641233, -0.50662036, -0.50649916,\n",
       "        -0.50652424, -0.50651264, -0.50651546, -0.50651403]),\n",
       " 'split0_train_score': array([-0.69314718, -0.64518453, -0.67578546, -0.53318077, -0.48947071,\n",
       "        -0.48189105, -0.47854865, -0.47839753, -0.47834279, -0.47834126,\n",
       "        -0.47834068, -0.47834066, -0.47834066, -0.47834066]),\n",
       " 'split1_test_score': array([-0.69314718, -0.64377437, -0.68667276, -0.52266356, -0.47092827,\n",
       "        -0.46020944, -0.45386938, -0.45398684, -0.45358621, -0.45361168,\n",
       "        -0.45357359, -0.45357866, -0.4535732 , -0.45357541]),\n",
       " 'split1_train_score': array([-0.69314718, -0.6486424 , -0.68801002, -0.54384713, -0.50501581,\n",
       "        -0.49476673, -0.49146795, -0.49131601, -0.49126118, -0.49125962,\n",
       "        -0.49125904, -0.49125901, -0.49125901, -0.49125901]),\n",
       " 'split2_test_score': array([-0.69314718, -0.64887231, -0.67733845, -0.54084756, -0.49334147,\n",
       "        -0.47975038, -0.47232194, -0.47245305, -0.47191966, -0.47195322,\n",
       "        -0.47190306, -0.47190786, -0.471904  , -0.47190337]),\n",
       " 'split2_train_score': array([-0.69314718, -0.64594027, -0.67592498, -0.53878788, -0.50146362,\n",
       "        -0.49089336, -0.48769799, -0.48753561, -0.48748173, -0.48748005,\n",
       "        -0.48747948, -0.48747946, -0.48747945, -0.48747945]),\n",
       " 'split3_test_score': array([-0.69314718, -0.65084671, -0.67470284, -0.56803665, -0.56302959,\n",
       "        -0.56673903, -0.58335618, -0.58502473, -0.58807403, -0.5882549 ,\n",
       "        -0.58856596, -0.58860165, -0.58864127, -0.58863657]),\n",
       " 'split3_train_score': array([-0.69314718, -0.64438501, -0.66875354, -0.52555816, -0.47603023,\n",
       "        -0.46592   , -0.46129495, -0.46117994, -0.46109747, -0.46109631,\n",
       "        -0.46109542, -0.46109541, -0.4610954 , -0.4610954 ]),\n",
       " 'split4_test_score': array([-0.69314718, -0.64470235, -0.68399553, -0.52907199, -0.48033698,\n",
       "        -0.47431911, -0.47041725, -0.46968588, -0.46952467, -0.4694623 ,\n",
       "        -0.46944472, -0.46944411, -0.46943696, -0.46944234]),\n",
       " 'split4_train_score': array([-0.69314718, -0.64801066, -0.68546076, -0.54174888, -0.50028285,\n",
       "        -0.4922723 , -0.48902687, -0.48888503, -0.48883196, -0.48883046,\n",
       "        -0.48882989, -0.48882988, -0.48882987, -0.48882987]),\n",
       " 'std_fit_time': array([  1.39148518e-04,   3.75544528e-04,   1.48543798e-04,\n",
       "          2.56673589e-04,   2.03968029e-04,   1.48643229e-04,\n",
       "          5.82980181e-05,   1.50058343e-04,   2.40276375e-04,\n",
       "          2.27949479e-04,   1.53699817e-04,   1.41334614e-04,\n",
       "          6.65146645e-05,   8.20982321e-05]),\n",
       " 'std_score_time': array([  1.42605293e-04,   2.36953977e-04,   3.83009188e-05,\n",
       "          8.57000416e-05,   3.29937547e-04,   1.22178391e-04,\n",
       "          1.10044202e-04,   1.43647414e-04,   2.35492228e-04,\n",
       "          1.95920580e-04,   2.36692859e-05,   5.71686299e-04,\n",
       "          6.29184778e-05,   6.80571086e-05]),\n",
       " 'std_test_score': array([ 0.        ,  0.00278999,  0.0045084 ,  0.01605135,  0.03310345,\n",
       "         0.03774843,  0.04625985,  0.04687065,  0.04816236,  0.04822427,\n",
       "         0.04835549,  0.04836699,  0.04838411,  0.04838134]),\n",
       " 'std_train_score': array([ 0.        ,  0.001635  ,  0.00703525,  0.00659438,  0.0105729 ,\n",
       "         0.01055091,  0.01105736,  0.01104395,  0.01105444,  0.01105429,\n",
       "         0.0110544 ,  0.0110544 ,  0.0110544 ,  0.0110544 ])}"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid.cv_results_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.497429852689\n",
      "{'C': 1, 'penalty': 'l2'}\n"
     ]
    }
   ],
   "source": [
    "print(-grid.best_score_)\n",
    "print(grid.best_params_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最佳值不在候选参数的边缘，说明候选参数和最佳值可取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1139ea9b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot CV误差曲线\n",
    "test_means = -grid.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid.cv_results_[ 'std_test_score' ]\n",
    "train_means = -grid.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = grid.cv_results_[ 'std_train_score' ]\n",
    "\n",
    "# plot results\n",
    "n_Cs = len(Cs)\n",
    "number_penaltys = len(penaltys)\n",
    "test_scores =  np.array(test_means).reshape(n_Cs,number_penaltys)\n",
    "train_scores = np.array(train_means).reshape(n_Cs,number_penaltys)\n",
    "test_stds = np.array(test_stds).reshape(n_Cs,number_penaltys)\n",
    "train_stds = np.array(train_stds).reshape(n_Cs,number_penaltys)\n",
    "\n",
    "x_axis = np.log10(Cs)\n",
    "for i, value in enumerate(penaltys):\n",
    "    pyplot.errorbar(x_axis, test_scores[:,i], yerr=test_stds[:,i] ,label = penaltys[i] +' Test')\n",
    "    pyplot.errorbar(x_axis, train_scores[:,i], yerr=train_stds[:,i] ,label = penaltys[i] +' Train')\n",
    "    \n",
    "pyplot.legend()\n",
    "pyplot.xlabel( 'log(C)' )                                                                                                      \n",
    "pyplot.ylabel( 'logloss' )\n",
    "pyplot.savefig('LogisticGridSearchCV_C.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上图是给出在L1，L2正则参数下，不同的正则系数C对应的模型在数据集上的表现。\n",
    "\n",
    "对于训练集来说，C越大模型性能越好，正确率越高。\n",
    "\n",
    "可以看出在L1，L2正则参数下，训练集和测试集的最佳正则系数都为C=1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.760586319218\n",
      "{'C': 0.1, 'penalty': 'l1'}\n"
     ]
    }
   ],
   "source": [
    "# 换正确率做评价指标\n",
    "penaltys = ['l1','l2']\n",
    "Cs = [0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "tuned_parameters = dict(penalty = penaltys, C = Cs)\n",
    "\n",
    "lr_penalty= LogisticRegression()\n",
    "\n",
    "#缺省scoring为正确率\n",
    "grid= GridSearchCV(lr_penalty, tuned_parameters,cv=5)\n",
    "grid.fit(X_train,y_train)\n",
    "\n",
    "print(grid.best_score_)\n",
    "print(grid.best_params_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "当我们使用缺省scoring为正确率时，best score提升到了0.7以上，penalty参数还是为L1正则，正则系数变为0.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113ca86a0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_means = grid.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid.cv_results_[ 'std_test_score' ]\n",
    "train_means = grid.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = grid.cv_results_[ 'std_train_score' ]\n",
    "\n",
    "n_Cs = len(Cs)\n",
    "number_penaltys = len(penaltys)\n",
    "test_scores =  np.array(test_means).reshape(n_Cs,number_penaltys)\n",
    "test_stds = np.array(test_stds).reshape(n_Cs,number_penaltys)\n",
    "\n",
    "x_axis = np.log10(Cs)\n",
    "for i, value in enumerate(penaltys):\n",
    "    pyplot.errorbar(x_axis, test_scores[:,i], yerr=test_stds[:,i] ,label = penaltys[i] +' Test') #只plot test准确率\n",
    "    \n",
    "pyplot.legend()\n",
    "pyplot.xlabel( 'log(C)' )                                                                                                      \n",
    "pyplot.ylabel( 'accuary' )\n",
    "pyplot.savefig('LogisticGridSearchCV_C.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在L1正则下，测试集的最佳正则参数为0.1，之后准确率就开始下降了\n",
    "\n",
    "在L2正则下，测试集的最佳正则参数为0.01，之后准确率不稳定，在C=0.1时下降，C=1时又上升。但最高的准确率是在C=0.01，准确率为0.76左右"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 线性SVM正则参数调优"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "采用交叉验证，网格搜索步骤来估计模型性能"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.760586319218\n",
      "{'C': 0.01}\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.svm import SVC\n",
    "\n",
    "Cs = [0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "param_grid = {'C': Cs}\n",
    "\n",
    "grid = GridSearchCV(SVC(kernel='linear'), param_grid, cv=5)\n",
    "grid.fit(X_train,y_train)\n",
    "\n",
    "print(grid.best_score_)\n",
    "print(grid.best_params_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "交叉验证和网格搜索比较慢。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x114457438>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot CV误差曲线\n",
    "test_means = grid.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid.cv_results_[ 'std_test_score' ]\n",
    "train_means = grid.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = grid.cv_results_[ 'std_train_score' ]\n",
    "\n",
    "# plot results\n",
    "n_Cs = len(Cs)\n",
    "test_scores =  np.array(test_means).reshape(n_Cs,1)\n",
    "train_scores = np.array(train_means).reshape(n_Cs,1)\n",
    "test_stds = np.array(test_stds).reshape(n_Cs,1)\n",
    "train_stds = np.array(train_stds).reshape(n_Cs,1)\n",
    "\n",
    "x_axis = np.log10(Cs)\n",
    "\n",
    "pyplot.errorbar(x_axis, test_scores[:,:], yerr=test_stds[:,:] ,label='Test')\n",
    "pyplot.errorbar(x_axis, train_scores[:,:], yerr=train_stds[:,:] ,label='Train')\n",
    "    \n",
    "pyplot.legend()\n",
    "pyplot.xlabel( 'log(C)' )                                                                                                      \n",
    "pyplot.ylabel( 'accuracy' )\n",
    "pyplot.savefig('SVCGridSearchCV_C.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看到，我们利用SVC作为分类器，并且采用交叉验证时，得到的最好分数和我们利用逻辑回归为分类器，缺省scoring为正确率时得到的最好分数一样，都为0.76左右。只是正则系数C不一样，在逻辑回归中，最佳值为C=0.1，在线性SVM中，C更小一点，最佳值为C=0.01，并且没有那么多的波动。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## RBF核SVM正则参数调优"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "需要调整正则超参数包括正则系数C和核函数的宽度gamma\n",
    "\n",
    "C越小，决策边界越平滑； gamma越小，决策边界越平滑。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise',\n",
       "       estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n",
       "  decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',\n",
       "  max_iter=-1, probability=False, random_state=None, shrinking=True,\n",
       "  tol=0.001, verbose=False),\n",
       "       fit_params=None, iid=True, n_jobs=1,\n",
       "       param_grid={'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000], 'gamma': [0.0001, 0.001, 0.01, 0.1, 1]},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n",
       "       scoring=None, verbose=0)"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.svm import SVC\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "Cs = [0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "gammas = [0.0001,0.001, 0.01, 0.1, 1]\n",
    "param_grid = {'C': Cs, 'gamma' : gammas}\n",
    "grid = GridSearchCV(SVC(kernel='rbf'), param_grid, cv=5)\n",
    "\n",
    "grid.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.762214983713\n",
      "{'C': 100, 'gamma': 0.001}\n"
     ]
    }
   ],
   "source": [
    "print(grid.best_score_)\n",
    "print(grid.best_params_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1143aab00>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_means = grid.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid.cv_results_[ 'std_test_score' ]\n",
    "\n",
    "n_Cs = len(Cs)\n",
    "number_gamms = len(gammas)\n",
    "\n",
    "test_scores =  np.array(test_means).reshape(n_Cs,number_gamms)\n",
    "test_stds = np.array(test_stds).reshape(n_Cs,number_gamms)\n",
    "\n",
    "x_axis = np.log10(Cs)\n",
    "for i, value in enumerate(gammas):\n",
    "    pyplot.plot(x_axis, test_scores[:,i], label= gammas[i])\n",
    "    \n",
    "pyplot.legend()\n",
    "pyplot.xlabel( 'log(C)' )                                                                                                      \n",
    "pyplot.ylabel( 'accuary' )\n",
    "pyplot.savefig('SVMGridSearchCV_C.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看到，核函数的宽度为0.001，C为100时，准确率最高，达到了0.76以上。\n",
    "\n",
    "其次，核函数宽度为1时，准确率最低，最高也就0.68左右，在C=1时。\n",
    "\n",
    "并且C越大，核函数宽度gamma越小。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
